import configparser
from configs.setting import FILE_PATH
from unit_tools.log_utils.recordlog import logs


class ConfigParse:
    """
    解析.ini后缀的配置文件
    """

    def __init__(self, file_path=FILE_PATH['ini']):  # 一个项目的配置文件有一个就够了，这里我们直接取/Auto/configs/config.ini
        self.file_path = file_path  # 初始化一下文件路径
        # 解析配置文件
        self.config = configparser.ConfigParser()
        # 初始化的时候调用读取方法
        self.read_config()

    def read_config(self):
        """读取配置文件方法"""
        self.config.read(self.file_path)

    def get_value(self, section, option):
        """
        获取配置文件数据
        :param section: 头参数 [Host]
        :param option: 下级参数key值    host = http://192.168.0.106:8080
        :return:
        """
        try:
            return self.config.get(section, option)
        except Exception as e:
            logs.error(f"解析配置文件出现异常，原因：{e}")

    def get_host(self, option):
        """
        专门获取接口服务器host的方法
        :param option:
        :return:
        """
        return self.get_value('Host', option)

    def get_mysql_conf(self, option):
        """
        获取mysql数据库配置信息
        :param option:
        :return:
        """
        return self.get_value('MySQL', option)


# 测试一下
if __name__ == '__main__':
    conf = ConfigParse()
    result = conf.get_mysql_conf('database')

    print(result)
